package tech.aistar.corejava.day03.homework;

/**
 * @author success
 * @version 1.0
 * @description:本类用来演示:阶乘
 * @date 2019/7/18 0018
 */
public class TestFeiDemo {
    /**
     1!=1
     2!=2
     3!=6
     4!=24
     5!=120
     6!=720
     7!=5040
     8!=40320
     9!=362880
     10!=3628800
     输出最终结果：
     1!+2!+3!+4!+5!+6!+7!+8!+9!+10!=4037913
     * @param args
     */
    public static void main(String[] args) {
        test(10);
    }

    /**
     * 题型 - 每次循环需要得到的结果都是根据当前循环的值和上一次循环得到某个结果计算得到.
     * 阶乘
     * @param n 控制显示的行数
     */
    public static void test(int n){
        //1. 定义一个变量,用来记录每个数的阶乘的值
        int result = 1;
        //2. 定义一个变量,用来保存所有的数的阶乘的结果
        int sum = 0;
        //3.需要使用一个变量,字符串变量来保存最终的表达式
        String str = "";
        for (int i = 1; i <= n ; i++) {
            result *= i;//result = result * i;
            sum+=result;
            System.out.println(i+"!="+result);

            //str += (i+"!+");//str = str + (i+"!+");
            str+= (i!=n?(i+"!+"):(i+"!="));
        }

        System.out.println(str+sum);
    }
}
